package com.demo.project_template.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;

/**
 * <p>
 *
 * </p>
 *
 * @author 杨玉龙
 * @since 2024-08-19 18:52:30
 */
@Getter
@Setter
@TableName("t_user")
@ApiModel(value = "User对象", description = "")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    private Long id;

    @ApiModelProperty(value = "用户编码")
    private String code;

    @ApiModelProperty(value = "im系统的token")
    private String imToken;

    @ApiModelProperty("昵称")
    @TableField("nick_name")
    private String nickName;

    @ApiModelProperty("头像")
    @TableField("avatar")
    private Integer avatar;

    @ApiModelProperty("电话号码")
    @TableField("phone_number")
    private String phoneNumber;

    @ApiModelProperty("身高")
    @TableField("height")
    private Integer height;

    @ApiModelProperty("性别（1=男，2=女，0=未知）")
    @TableField("gender")
    private String gender;

    @ApiModelProperty("年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty("生日")
    @TableField("birthday")
    private Date birthday;

    @ApiModelProperty("学历")
    @TableField("degree")
    private String degree;

    @ApiModelProperty("省市区编码")
    @TableField("area")
    private String area;

    @ApiModelProperty("省市区地址")
    @TableField("address")
    private String address;

    @ApiModelProperty("性格（1=内向，2=外向）")
    @TableField("nature")
    private String nature;

    @ApiModelProperty("个性签名")
    @TableField("signature")
    private String signature;

    @ApiModelProperty("粉丝量")
    @TableField("fans_count")
    private Long fansCount;

    @ApiModelProperty("浏览量")
    @TableField("view_count")
    private Long viewCount;

    @ApiModelProperty("微信号")
    @TableField("wechat_account")
    private String wechatAccount;

    @ApiModelProperty("爱好json数组")
    @TableField("hobbies_json")
    private String hobbiesJson;

    @ApiModelProperty("生活照json数组")
    @TableField("pictures_json")
    private String picturesJson;

    @ApiModelProperty("主页语音")
    @TableField("voice")
    private String voice;

    @ApiModelProperty("星座")
    @TableField("constellation")
    private String constellation;

    @ApiModelProperty("相貌身材")
    @TableField("appearance")
    private String appearance;

    @ApiModelProperty("是否接受约会")
    @TableField("is_appointment")
    private String isAppointment;

    @ApiModelProperty("是否饮酒")
    @TableField("is_drinking")
    private String isDrinking;

    @ApiModelProperty("是否接受婚前同居")
    @TableField("is_cohabit")
    private String isCohabit;

    @ApiModelProperty(value = "邀请码")
    private String invitationCode;

    @ApiModelProperty(value = "邀请人id")
    private Long inviterId;

    @ApiModelProperty(value = "是否启用青少年模式")
    private String enableTeenager;

    @ApiModelProperty(value = "今日是否已签到")
    private String isSignIn;

    @ApiModelProperty(value = "是否为会员")
    private String isMember;

    @ApiModelProperty(value = "会员过期时间")
    private Date memberDeadline;

    @ApiModelProperty("创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty("修改时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty("是否删除")
    @TableField("is_delete")
    @TableLogic
    private String isDelete;
}
